const data = {
  a: 3,
  b: 4,
};

const observer = (data, item, value) => {
  Object.defineProperty(data, item, {
    get() {
      return value;
    },
    set(val) {
      value = val;
      // 可以在这个地方去重新渲染页面，从而实现响应式
    },
  });
};

Object.keys(data).forEach((item) => {
  // data[item]就是这个属性的初始值
  observer(data, item, data[item]);
});

// console.log(data.a);
data.b = 5;
// console.log(data.b);
